/*
    SUSAN® - Sole of Unix Save ANything

   Copyright (C) 2013-2013 Hechzh Property

   
*/

#include "systemtrayicon.h"
#include "traymenu.h"
#include <QObject>
#include <QMainWindow>
#include <QTimer>
#include <QDebug>

SystemTrayIcon::SystemTrayIcon(QMainWindow* mainWindow)
    : QSystemTrayIcon(mainWindow), iconIdx(0), timer(new QTimer(this))
{
  // this object name is used for auto-connection to the MainWindow
  setObjectName("SystemTrayIcon");

  TrayMenu* menu = new TrayMenu(mainWindow);
  setContextMenu(menu);

  icons << ":/images/susan_1.png"
        << ":/images/susan_2.png"
        << ":/images/W.png";
  setIcon(QIcon(icons[iconIdx]));
  setToolTip("Susan Tray Monitor");

  timer->setInterval(700);
  connect(timer, SIGNAL(timeout()), this, SLOT(setIconInternal()));
}

SystemTrayIcon::~SystemTrayIcon() { timer->stop(); }

void SystemTrayIcon::setNewIcon(int icon)
{
  iconIdx = icon;
  setIcon(QIcon(icons[icon]));
}

void SystemTrayIcon::setIconInternal()
{
  setIcon(QIcon(icons[iconIdx++]));
  iconIdx %= 2;  // 0 if 1 / 1 if 0
}

void SystemTrayIcon::animateIcon(bool on)
{
  if (on) {
    if (!timer->isActive()) { timer->start(); }
  } else {  // off
    if (timer->isActive()) { timer->stop(); }
    if (iconIdx != 2) {  // blink if there's no error
      iconIdx = 0;
      setIconInternal();
    }
  }
}
